evtchn: add FIFO-based event channel ABI
authorDavid Vrabel <david.vrabel@citrix.com>
Mon, 14 Oct 2013 08:20:02 +0000 (10:20 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 14 Oct 2013 08:20:02 +0000 (10:20 +0200)
commitd2d50c2f308f8b5a9e30cb4a4bebf23aa81211f5
tree188ff5255f86fca3cf2780a7f08e3a986ecb828c
parentea963e094a01cbbac203f0252c28808cfdc7f8ed
evtchn: add FIFO-based event channel ABI

Add the event channel hypercall sub-ops and the definitions for the
shared data structures for the FIFO-based event channel ABI.

The design document for this new ABI is available here:

http://xenbits.xen.org/people/dvrabel/event-channels-F.pdf

In summary, events are reported using a per-domain shared event array
of event words.  Each event word has PENDING, LINKED and MASKED bits
and a LINK field for pointing to the next event in the event queue.

There are 16 event queues (with different priorities) per-VCPU.

Key advantages of this new ABI include:

- Support for over 100,000 events (2^17).
- 16 different event priorities.
- Improved fairness in event latency through the use of FIFOs.

Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Keir Fraser <keir@xen.org>
xen/include/public/event_channel.h
xen/include/public/xen.h
xen/include/xen/sched.h